// scaup
// (c) 2010, Normen Müller, normen.mueller@gmail.com  
// $Id: PimpedType.scala 125 2010-09-16 13:48:09Z normen.mueller $
package scaup

/** Sub class to create a wrapper type for `T` as documentation that the sub class follows the
 *  <a href="http://www.artima.com/weblogs/viewpost.jsp?thread=179766">pimp my library pattern</a>.
 *
 *  <p>The companion object provides an implicit conversion to unwrap `value`.</p>
 * 
 *  @author  <a href="mailto:normen.mueller@googlemail.com">Normen M\u00FCller</a>
 */
trait PimpedType[T] {
  val value: T
}

/** @author  <a href="mailto:normen.mueller@googlemail.com">Normen M\u00FCller</a>
 */
object PimpedType {
  implicit def UnwrapPimpedType[T](p: PimpedType[T]): T = p.value
}
